package com.ymm.lulutong.mapper;

import com.ymm.lulutong.entity.OrderOpsLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface ShipperOrderOpsLogMapper {

    /**
     * 插入订单操作日志
     * @param orderOpsLog 订单操作日志
     */
    void add(OrderOpsLog orderOpsLog);

    /**
     * 根据主键返回订单操作日志
     * @param logId 日志Id
     * @return 订单操作日志
     */
    OrderOpsLog getByLogId(Long logId);

    /**
     * 根据货主Id、订单Id和操作类型查找日志Id
     * @param shipperId 货主Id
     * @param orderId 订单Id
     * @param opsType 操作类型
     */
    Long getLogIdByShipperIdAndOrderIdAndOpsType(@Param("shipperId") Long shipperId, @Param("orderId") Long orderId, @Param("opsType") Integer opsType);

    /**
     * 更改日志的业务执行状态
     * @param logId 日志Id
     * @param executionStatus 业务执行状态
     */
    void updateExecutionStatusByLogId(@Param(("logId")) Long logId, @Param("executionStatus") Integer executionStatus);

    /**
     * 根据日志Id删除记录
     * @param logId 日志Id
     */
    void deleteByLogId(Long logId);
}
